package com.jinzhending.comm;

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.io.File;
import java.util.Date;
import java.util.Map;

/**
 * @ProjectName: LieIdle
 * @Package: com.jinzhending.utils  图片上传
 * @Author: huat
 * @Date: 2020/4/3 16:52
 * @Version: 1.0
 */
public class UploadFile {
    /**
     * 通过；spring 的方法解析所有方法
     * @param multipartRequest  请求
     * @param keys  获取参数key 对应的文件 key的值必须和前台页面的name值一样
     * @param systemPath    系统路径（活路径）
     * @param path  自己目录的路径
     * @return
     */
    public static String  getFileURL(MultipartHttpServletRequest multipartRequest, String keys, String systemPath, String path){
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();



        return getPathValue(fileMap.get(keys),systemPath,path);
    }
    protected static String getPathValue(MultipartFile file,String systemPath,String path){
        if (!file.isEmpty()) {
            try {
                String fileName=file.getOriginalFilename();
                if(StringUtils.isNotBlank(fileName)){
                    String[] str=fileName.split("\\.");
                    if(str.length==1){
                        path=path+new Date().getTime()+str[0]+".JPEG";
                    }else{
                        path=path+new Date().getTime()+"."+str[str.length-1];
                    }

                }
                // 文件保存路径
                File fl=new File(systemPath+path);
                if(!fl.getParentFile().exists()){
                    fl.getParentFile().mkdirs();
                }
                // 转存文件
                file.transferTo(fl);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else{
            return null;
        }
        return  path;
    }
}
